Software development of applications, such as games, which have a graphics component can be a time consuming and laborious task. One such problem is optimizing the graphics output of the application for the particular characteristics of a computing device display. This problem is particularly significant in the field of mobile devices, such as wireless phones, pagers, and personal digital assistants (PDAs). The proliferation of mobile devices and the lack of standardization has created an enormous variety of devices with different display characteristics.
Typically, a mobile device possesses a display screen, such as a liquid crystal display (LCD). Game applications are typically developed for a particular mobile device (referred to herein as a “reference mobile device”) having a display screen with a particular set of characteristics, such as screen size, color, and resolution. For this reason, the graphics of a game application often do not display as intended by the developer on a device with a display having a different set of characteristics even if the two devices support the same platform, such as the Java 2 Micro Edition (J2ME). In other words, even if the game application runs on a different mobile device, it does not appear on the screen as it is intended to appear, due to the differing characteristics of the display screens of the two devices.
Several methods to modify an application so that it runs on a mobile device having different display characteristics (referred to herein as a “target mobile device”) are known.
One such method is referred to as the “porting approach”. In this approach, the software developer manually modifies the source code of the application and then recompiles the source code using a compiler developed for the target mobile device. The main disadvantage of this approach is it is very labor-intensive. In addition, this approach requires the developer to maintain and manage multiple versions of the source code (for each target mobile device) for a single game application.
Another known method to modify an application is referred to as the “on-line interpretation” approach. In this method, a software module called an “interpreter” interprets instructions from an executable version of the application program written to run on the reference mobile device. The interpreter chooses the appropriate instructions or routines required for the application to execute the same functions in the target mobile device. The interpreter essentially runs as an emulator, which responds to an executable file of the application which runs on the reference mobile device, and in turn, creates a converted executable file which runs on the target mobile device.
A disadvantage of the on-line interpretation method is that the interpreter must be able to be loaded and executed on the target mobile device. While this is possible on some systems like desktop personal computer systems, it is not feasible for mobile devices due to size and performance limitations.
Accordingly, there is a need for systems and methods for facilitating the modification of the graphics output of an application for different mobile devices.